package view.content;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;

import util.LoggingUtils;

public class DateBox {
	/**
	 * @param args
	 */
	private static DateBox _instance;
	
	private DateBox()
	{
		
	}
	
	public static DateBox getInstance()
	{
		if(_instance == null)
		{
			_instance = new DateBox();
		}
		return _instance;
	}
	
	public String getFormattedDate(String formatString)
	{
		formatString = formatString.trim();
		
		if(formatString.equals("") || formatString == null)
		{
			formatString = "EEEE MMMM dd, yyyy";
		}
		
		DateFormat df;
		String formattedDate;
		try
		{
			df = new SimpleDateFormat(formatString);
			formattedDate = df.format(new Date());
		}
		catch(Exception e)
		{
			//e.printStackTrace();
			//System.out.println("From exception formating");
			
			// System.out.println(System.getProperties());
			LoggingUtils.log(Level.SEVERE, "Wrong date format from server: setting the player default format datebox " + e.getMessage());
			
			df = new SimpleDateFormat("EEEE MMMM dd, yyyy");
			formattedDate = df.format(new Date());
		}
		return formattedDate;
	}
	
	public static void main(String[] args) {
		System.out.println(DateBox.getInstance().getFormattedDate(""));
	}

}

/*Letter   Date or Time Component   Presentation       Examples
G        Era designator             Text                AD
y        Year                       Year                1996;    96
M        Month in year               Month               July; Jul; 07
w        Week in year               Number               27
W        Week in month               Number               2
D        Day in year               Number               189
d        Day in month               Number               10
F        Day of week in month       Number               2
E        Day in week               Text               Tuesday; Tue
a        Am/pm marker               Text               PM
H        Hour in day (0-23)       Number               0
k        Hour in day (1-24)       Number               24
K        Hour in am/pm (0-11)       Number               0
h        Hour in am/pm (1-12)       Number               12
m        Minute in hour           Number               30
s        Second in minute           Number               55
S        Millisecond                Number               978
z        Time zone                   General time zone   Pacific Standard Time; PST; GMT-08:00
Z        Time zone                  RFC 822 time zone   -0800
*/